package com.insigma.business.qrcode.common._consumer;




import cn.hutool.core.lang.tree.Tree;
import com.insigma.business.qrcode.common.annotation.ApiServiceType;
import com.insigma.business.qrcode.common.dto.CityPlatformSoldierBasicInfoDTO;
import com.insigma.business.qrcode.common.dto.CommonQaInfoSearchRequest;
import com.insigma.business.qrcode.common.dto.PermissionRoleDTO;
import com.insigma.business.qrcode.common.dto.SystemConfigResult;
import com.insigma.business.qrcode.common.dto.req.QueryAreaStreetReqDTO;
import com.insigma.business.qrcode.common.dto.req.QueryOperateLogReqDTO;
import com.insigma.business.qrcode.common.dto.res.QueryOperateLogResDTO;
import com.insigma.business.qrcode.common.template.BasePagingResponse;
import com.insigma.business.qrcode.common.vo.BaseResponse;
import com.insigma.business.qrcode.common.vo.ComonAttachmentRequest;
import com.insigma.business.qrcode.merchant.dto.request.CareWelfareMerchantInfoSearchRequest;
import com.insigma.business.qrcode.soldier.dto.*;
import com.insigma.business.qrcode.soldier.request.*;

import java.util.List;


public interface CommonConsumer {

    String insertCommonAttachment(final ComonAttachmentRequest request);


    SystemConfigResult getSystemConfigByName(final String name);


    List<PermissionRoleDTO> queryAllRoleDetail();


    BasePagingResponse<List<CityPlatformSoldierBasicInfoDTO>> searchPreferentialTreatment(Integer pageNo, Integer pageSize, String idCardNo);



    QaResult intelligentQA(final CommonQaInfoSearchRequest searchRequest);


    BasePagingResponse<List<CareSoldierDemandDTO>> searchOpenDemand(CareSoldierDemandSearchRequest request);


    BasePagingResponse<List<CareSoldierVisitedRecordDTO>> searchOpenVisitRecord(final CareSoldierVisitedRecordSearchRequest careSoldierVisitedRecordSearchRequest);



    BasePagingResponse<List<OpenMerchantInfoDTO>> searchOpenMerchantInfo(final CareWelfareMerchantInfoSearchRequest careWelfareMerchantInfoSearchRequest);


    BasePagingResponse<List<SoldierBasicOpenInfoDTO>> searchOpenBasicInfo(final SoldierBasicInfoSearchRequest soldierBasicInfoSearchRequest);


    BasePagingResponse<List<SoldierDifficultyRegistrationInfoDTO>> searchOpenDifficultyRegistrationInfo(final SoldierDifficultyRegistrationInfoSearchRequest request);


    BasePagingResponse<List<SoldierUnemploymentRegistrationInfoDTO>> searchOpenUnemploymentRegistrationInfo(final SoldierUnemploymentRegistrationInfoSearchRequest request);


    BasePagingResponse<List<SoldierBasicOpenInfoDTO>> searchElderlySoldier(final SoldierBasicInfoSearchRequest soldierBasicInfoSearchRequest);


    BaseResponse<List<String>> listAllIdCardNo();


    @ApiServiceType(value = "all.ss.soldier.common.query.area.street", name = "查询区划及街道", desc = "查询区划及街道",menu = "公共方法")
    BaseResponse<List<Tree<String>>> queryAreaStreet(final QueryAreaStreetReqDTO queryAreaStreetReqDTO);

    @ApiServiceType(value = "all.ss.soldier.common.query.operate.log", name = "查询操作日志", desc = "查询操作日志",menu = "公共方法")
    BaseResponse<List<QueryOperateLogResDTO>> queryOperateLog(final QueryOperateLogReqDTO reqDTO);
}
